package br.com.upis.sispat.view;

import java.util.List;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.upis.sispat.entity.AlocacaoPatrimonio;
import br.com.upis.sispat.entity.Patrimonio;
import br.com.upis.sispat.enums.Perfil;
import br.com.upis.sispat.exception.SeamCoreException;
import br.com.upis.sispat.exception.SeamWebException;
import br.com.upis.sispat.service.AlocacaoPatrimonioService;

@Component
@Scope("singleton")
public class AlocacaoPatrimonioView extends AbstractView implements
		ICommandPopup {

	private static final String PATH_LISTA_ALOCACAO= CONTEXT	+ "/alocacaoPatrimonio/listarAlocacao";

	private static final long serialVersionUID = -5563210483721555661L;

	private AlocacaoPatrimonio alocacaoPatrimonioPesquisa;
	private List<AlocacaoPatrimonio> listaAlocacaoPatrimonio;
	private Patrimonio patrimonio;

	public AlocacaoPatrimonioView() {

	}

	private AlocacaoPatrimonioService alocacaoPatrimonioService;

	@PostConstruct
	public void init() {
		setAlocacaoPatrimonioPesquisa(new AlocacaoPatrimonio());
	}

	public String iniciar() {
		setListaAlocacaoPatrimonio(null);
		return PATH_LISTA_ALOCACAO;
	}

	public String novo() {
		return null;
	}

	public String editar() {
		return null;
	}

	public String salvar() throws SeamWebException {

		return null;
	}

	public String atualizar() throws SeamWebException {

		return null;
	}

	public String excluir() throws SeamWebException {
		return null;
	}

	public String pesquisar() {
		try {
			setListaAlocacaoPatrimonio(alocacaoPatrimonioService.search(getAlocacaoPatrimonioPesquisa()));
		} catch (SeamCoreException e) {
			e.printStackTrace();
		}
		setExibeMsgNenhumRegistroEncontrado(listaAlocacaoPatrimonio.isEmpty());
		return PATH_LISTA_ALOCACAO;
	}

	public String voltar() throws SeamWebException {
		return null;
	}

	@Override
	public String execute() throws SeamWebException {

		String path = "";

		switch (getAcaoPopUp()) {
		case 1:
			path = excluir();
			break;

		case 2:
			path = atualizar();
			break;

		case 3:
			path = salvar();
			break;

		default:
			break;
		}

		return path;
	}

	public Patrimonio getPatrimonio() {
		return patrimonio;
	}

	public void setPatrimonio(Patrimonio idPatrimonio) {
		this.patrimonio = idPatrimonio;
	}



	@Override
	public boolean validaForm() throws SeamWebException {
		return false;
	}

	public AlocacaoPatrimonio getAlocacaoPatrimonioPesquisa() {
		return alocacaoPatrimonioPesquisa;
	}

	public void setAlocacaoPatrimonioPesquisa(
			AlocacaoPatrimonio alocacaoPatrimonioPesquisa) {
		this.alocacaoPatrimonioPesquisa = alocacaoPatrimonioPesquisa;
	}

	public List<AlocacaoPatrimonio> getListaAlocacaoPatrimonio() {
		return listaAlocacaoPatrimonio;
	}

	public void setListaAlocacaoPatrimonio(
			List<AlocacaoPatrimonio> listaAlocacaoPatrimonio) {
		this.listaAlocacaoPatrimonio = listaAlocacaoPatrimonio;
	}

	@Override
	public String detalhar() throws SeamWebException {
		return null;
	}

	@Override
	public boolean possuiAcesso(Perfil perfil) {
		return true;
	}
	
	@Autowired
	public void setAlocacaoPatrimonioService(
			AlocacaoPatrimonioService alocacaoPatrimonioService) {
		this.alocacaoPatrimonioService = alocacaoPatrimonioService;
	}
}
